/**
 * 属性编辑器注册表
 * 负责管理不同类型属性的编辑器组件
 */
export class PropertyEditorRegistry {
  private readonly editors = new Map<string, any>()

  /**
   * 注册属性编辑器
   * @param type 属性类型
   * @param component 编辑器组件
   */
  registerEditor(type: string, component: any): void {
    this.editors.set(type, component)
  }

  /**
   * 获取属性编辑器
   * @param type 属性类型
   * @returns 编辑器组件或undefined
   */
  getEditor(type: string): any | undefined {
    return this.editors.get(type)
  }

  /**
   * 获取所有已注册的编辑器类型
   * @returns 类型数组
   */
  getRegisteredTypes(): string[] {
    return Array.from(this.editors.keys())
  }
}